
#include <stdio.h>
#define Max_Size 100


int InitArray(int (*array)[Max_Size],int n)
{
    int i,j;
    int num = 0;
    for( i = 0; i < n; i++)
    {
        for ( j = 0; j < n; j++)
        {
            array[i][j] = 0;
        }
    }
}

void PrintArray(int (*array)[Max_Size],int n)
{
    for( int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            printf(" %d ", array[i][j]);
        }
        printf("\n");
    }
}

int Empress(int (*table)[Max_Size], int n,int COL ,int ROW)
{
    if(ROW == 4)
        return Empress( table , n , COL - 1 , Temp_ROW + 1);
    printf("Empress start\n");
    if(COL == 0) {
        table[ROW][COL] = 1;
        printf("Step 1\n");
        PrintArray(table , n );
        return ( table , n ,COL+1,ROW);
    }
    else if(COL == n ) {
        printf("OVER");
        PrintArray(table , n);
        return 0;
    }
    else {
       if (table[ROW][COL - 1] == 1 || table[ROW - 1][COL - 1] == 1 ||
         table[ROW + 1][COL - 1] == 1)
        {
            printf("Step 2\n");
            return (table, n, COL, ROW + 1);
        }
       else return ( table , n ,COL+1,ROW);
    }
}

int main()
{
    printf("Tell me the size you want:\n");
    int n;
    scanf("%d",&n);
    int Array_size = n*n;
    printf("The size is %d\n",Array_size);
    int Array[Max_Size][Max_Size];
    InitArray( Array, n);
    PrintArray( Array , n);
    Empress( Array , n , 0 , 0);
    return 0;
}
//Process finished with exit code 11
//二维数组实现

//一维数组实现

/*
#include <stdio.h>

int PrintArray(int Array[],int n)
{
    for(int i = 0; i < n ;i++)
    {
        for(int j = 0; j < n;j++)
        {
            printf("%d",Array[i*4 + j]);
        }
        printf("\n");
    }
}

int InitArray(int Array[],int n)
{
    for(int i = 0; i < n*n;i++)
    {
        scanf("%d",&Array[i]);
    }
}

int main()
{
    int n;
    int Array[n];
    scanf("%d",&n);
    InitArray( Array , n);
    PrintArray( Array , n);
    return 0;
}
 */